home *** CD-ROM | disk | FTP | other *** search
/ ShareWare OnLine 2 / ShareWare OnLine Volume 2 (CMS Software)(1993).iso / util2 / vol12n11.zip / OLFONT.ZIP / OLFWIDE.C < prev    next >
C/C++ Source or Header  |  1993-04-04  |  2KB  |  64 lines

  1. /*-------------------------------------------
  2.    OLFWIDE.C -- Wide-Lined OS/2 Outline Font
  3.                 (c) Charles Petzold, 1993
  4.   -------------------------------------------*/
  5.  
  6. #define INCL_WIN
  7. #define INCL_GPI
  8. #include <os2.h>
  9. #include <string.h>
  10. #include "olf.h"
  11.  
  12. #define LCID_FONT    1
  13.  
  14. void PaintClient (HPS hps, SHORT cxClient, SHORT cyClient)
  15.      {
  16.      static CHAR szText [] = "Hello!" ;
  17.      POINTL      ptl, aptlTextBox [TXTBOX_COUNT] ;
  18.  
  19.           // Create and size the logical font
  20.  
  21.      CreateOutlineFont (hps, LCID_FONT, "Times New Roman Italic", 0, 0) ;
  22.      GpiSetCharSet (hps, LCID_FONT) ;
  23.      ScaleOutlineFont (hps, 1440, 1440) ;
  24.  
  25.           // Get the text box
  26.  
  27.      GpiQueryTextBox (hps, strlen (szText), szText,
  28.                       TXTBOX_COUNT, aptlTextBox) ;
  29.  
  30.           // Create the path
  31.  
  32.      GpiBeginPath (hps, 1) ;
  33.  
  34.      ptl.x = (cxClient - aptlTextBox [TXTBOX_CONCAT].x) / 2 ;
  35.      ptl.y = (cyClient - aptlTextBox [TXTBOX_TOPLEFT].y
  36.                        - aptlTextBox [TXTBOX_BOTTOMLEFT].y) / 2 ;
  37.  
  38.      GpiCharStringAt (hps, &ptl, strlen (szText), szText) ;
  39.  
  40.      GpiEndPath (hps) ;
  41.  
  42.           // Stroke the path
  43.  
  44.      GpiSetLineWidthGeom (hps, 10) ;
  45.      GpiSetPattern (hps, PATSYM_HATCH) ;
  46.      GpiStrokePath (hps, 1, 0) ;
  47.  
  48.           // Create the path again
  49.  
  50.      GpiBeginPath (hps, 1) ;
  51.      GpiCharStringAt (hps, &ptl, strlen (szText), szText) ;
  52.      GpiEndPath (hps) ;
  53.  
  54.           // Modify and outline the path
  55.  
  56.      GpiModifyPath (hps, 1, MPATH_STROKE) ;
  57.      GpiOutlinePath (hps, 1, 0) ;
  58.  
  59.           // Select the default font; delete the logical font
  60.  
  61.      GpiSetCharSet (hps, LCID_DEFAULT) ;
  62.      GpiDeleteSetId (hps, LCID_FONT) ;
  63.      }
  64.